﻿namespace WMS6.Web
{
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Web;
    using WMS6.Web.InventoryMgtServiceRef;

    public class InventoryMgtServiceClientProxy : BasePage
    {
        public string BatchInsertInvTransfer(TransferInfo transferInfo)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.BatchInsertInvTransfer(transferInfo, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string DeleteAdJustMent(List<string> IDS)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.DeleteAdJustMent(IDS, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string DeleteAdJustMentDetail(string IDS, List<string> LineID)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.DeleteAdJustMentDetail(IDS, LineID, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string DeleteInvHold(List<string> InvHoldIDs)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.DeleteInvHold(InvHoldIDs, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string DeleteLpn(List<string> lpnIDS)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.DeleteLpn(lpnIDS, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string DeteleTransferDetail(List<string> transferIDs, List<string> lineIDs)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.DeteleTransferDetailInfo(transferIDs, lineIDs, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string ExecuteInvAdjustment(AdjustmentDetailInfo AdjustmentDetail)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.ExecuteInvAdjustment(AdjustmentDetail, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string ExecuteInvHold(InvHoldInfo invHoldInfo)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.ExecuteInvHold(invHoldInfo, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string ExecuteInvMoves(List<InvMovesInfo> invMovesInfo)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.ExecuteInvMoves(invMovesInfo, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string ExecuteInvTransfer(string transferID, List<string> lineID, string updatedBy)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.ExecuteInvTransfer(transferID, lineID, updatedBy, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public List<TaskDetailInfo> GenerateReplenishment(ReplenishmentGenParamsEntity replenishmentGenParamsEntity)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            List<TaskDetailInfo> taskDetailInfoList = null;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                taskDetailInfoList = client.GenerateReplenishment(replenishmentGenParamsEntity, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return taskDetailInfoList;
        }

        public DataSet GetAllInvTransInfo()
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            DataSet ds = null;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                ds = client.GetAllInvTrans(pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return ds;
        }

        public DataSet GetInfoByInvTransQueryEntity(InvTransQueryEntity TransQuery)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            DataSet ds = null;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                ds = client.GetInvTransByQueryList(TransQuery, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return ds;
        }

        public static InventoryMgtServiceClientProxy GetInstance()
        {
            return new InventoryMgtServiceClientProxy();
        }

        public InventoryInfo GetInventoryInfoByLpnID(string LpnID)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            InventoryInfo inventoryInfo = null;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                inventoryInfo = client.GetInventoryInfoByLpnID(LpnID, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return inventoryInfo;
        }

        public DataSet GetInventroyByQueryEnetiy(InventoryQueryEntity inventoryQuery)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            DataSet ds = null;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                ds = client.GetInventroyByQueryEnetiy(inventoryQuery, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return ds;
        }

        public InvHoldInfo GetInvHoldInfoByID(string invHoldID)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            InvHoldInfo invHoldInfo = null;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                invHoldInfo = client.GetInvHoldInfoByID(invHoldID, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return invHoldInfo;
        }

        public DataSet GetInvHoldInfoByQueryEntity(InvHoldQueryEntity invHoldQueryEntity)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            DataSet ds = null;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                ds = client.GetInvHoldInfoByQueryEntity(invHoldQueryEntity, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return ds;
        }

        public InvLotLocLpnInfo GetInvLotLocLpnByID(string lot, string loc, string lpnID)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            InvLotLocLpnInfo invLotLocLpnInfo = null;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                invLotLocLpnInfo = client.GetInvLotLocLpnByID(lot, loc, lpnID, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return invLotLocLpnInfo;
        }

        public DataSet GetInvLotLocLpnByQueryEntity(InvLotLocLpnQueryEntity invlotloclpnQuery)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            DataSet ds = null;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                ds = client.GetInvLotLocLpnByQueryEntity(invlotloclpnQuery, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return ds;
        }

        public InvTransInfo GetInvTransByID(string transID)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            InvTransInfo invTransInfo = null;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                invTransInfo = client.GetInvTransByID(transID, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return invTransInfo;
        }

        public DataSet GetInvTransferInfoByQueryEntity(TransferQueryEntity transferQuery)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            DataSet ds = null;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                ds = client.GetInvTransferInfoByQueryEntity(transferQuery, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return ds;
        }

        public LotAttributeInfo GetLotAttributeInfoByID(string lotAttributeID)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            LotAttributeInfo lotAttributeInfo = null;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                lotAttributeInfo = client.GetLotAttributeInfoByID(lotAttributeID, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return lotAttributeInfo;
        }

        public DataSet GetLotAttributeInfoByQueryEntity(LotAttributeQueryEntity lotAttributeQuery)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            DataSet ds = null;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                ds = client.GetLotAttributeInfoByQueryEntity(lotAttributeQuery, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return ds;
        }

        public LpnInfo GetLpnByID(string lpnID)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            LpnInfo lpnInfo = null;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                lpnInfo = client.GetLpnByID(lpnID, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return lpnInfo;
        }

        public DataSet GetLpnByQueryList(LpnQueryEntity lpnQuery)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            DataSet ds = null;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                ds = client.GetLpnByQueryList(lpnQuery, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return ds;
        }

        public string GetMaxLpnByLpnID(string lpnID, string length)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.GetMaxLpnByLpnID(lpnID, length, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public DataSet GetReplenishmentByQueryList(ReplenishmentQueryEntity replenishmentGenParamsEntity)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            DataSet ds = null;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                ds = client.GetReplenishmentByQueryList(replenishmentGenParamsEntity, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return ds;
        }

        public TransferDetailInfo GetTransferDetailByID(string transferID, string lineID)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            TransferDetailInfo transferDetailInfo = null;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                transferDetailInfo = client.GetTransferDetailInfo(transferID, lineID, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return transferDetailInfo;
        }

        public TransferInfo GetTransferInfoByID(string transferID)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            TransferInfo transferInfo = null;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                transferInfo = client.GetTransferInfoByID(transferID, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return transferInfo;
        }

        public string ImportTransferByDataSet(DataSet ds, string projectID, string transferID)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.ImportTransferByDataSet(ds, projectID, transferID, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        private PubParasInfo InitPubParasInfo()
        {
            if (base.UserInfo != null)
            {
                return new PubParasInfo { UserID = base.UserInfo.UserID, UserLanguage = base.UserInfo.Preference.Lang, CurrentWH = base.UserInfo.CurrentWH };
            }
            HttpContext.Current.Response.Redirect("../Login.aspx?from=Logout", true);
            return null;
        }

        public string InsertAdJustMent(AdjustmentInfo obj)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.InsertAdJustMent(obj, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string InsertAdJustMentDetail(AdjustmentDetailInfo obj)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.InsertAdJustMentDetail(obj, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string InsertInvBackup(string invDate)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.InsertInvBackup(invDate, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string InsertLpn(LpnInfo lpnInfo)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.InsertLpn(lpnInfo, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string InsertTransferDetailInfo(TransferDetailInfo transferDetailInfo)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.InsertTransferDetailInfo(transferDetailInfo, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string InsertTransferInfo(TransferInfo transferInfo)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.InsertTransferInfo(transferInfo, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string LpnSplit(List<LpnInfo> NewLpnInfo, InventoryInfo inventoryInfo, string strLpnID, string SplitType)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.LpnSplit(NewLpnInfo, inventoryInfo, strLpnID, SplitType, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string ReplenishmentConfirm(List<string> Ids)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.ReplenishmentConfirm(Ids, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string UpdateAdJustMent(AdjustmentInfo obj)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.UpdateAdJustMent(obj, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string UpdateAdJustMentDetail(AdjustmentDetailInfo obj)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.UpdateAdJustMentDetail(obj, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string UpdateLpn(LpnInfo lpnInfo)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.UpdateLpn(lpnInfo, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }

        public string UpdateTransferDetail(TransferDetailInfo transferDetailInfo)
        {
            PubParasInfo pubParasInfo = this.InitPubParasInfo();
            string result = string.Empty;
            InventoryMgtServiceClient client = new InventoryMgtServiceClient("WSHttpBinding_IInventoryMgtService");
            try
            {
                result = client.UpdateTransferDetailInfo(transferDetailInfo, pubParasInfo);
                client.Close();
            }
            catch (Exception ex)
            {
                client.Abort();
                SysLog.GetInstance().LogProxyError(ex);
            }
            return result;
        }
    }
}

